//////////////////////////////////////////////////////////////////////////
//             Copyright 2013 TYPROTECH All Rights Reserved             //
//////////////////////////////////////////////////////////////////////////
/* =======================================================================
 * 系统名   : 安防平台管理系统
 * 子系统名 : 基础数据模块
 * Class名  : LogSpecs
 * 概要     : 基础数据属性Specification类
 * 改版履历 : 
 * 版本     		日期        	作者名             备注
 * 1.0.0    2013.04.13  许智翔          初次作成
 * =======================================================================
 */
package com.framework.web.sys.repository.specifications;

import com.framework.core.util.LikePatternUtil;
import com.framework.core.util.StringUtil;
import com.framework.web.sys.domain.Log;
import org.springframework.data.jpa.domain.Specification;

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;

public class LogSpecs {

	/**
	 * 根据条件对日志进行查询分页操作
	 *
	 * @param log
	 * @return
	 */
	public static Specification<Log> LikeLogType(
			final Log log) {

		return new Specification<Log>() {
			@Override
			public Predicate toPredicate(Root<Log> root,
					CriteriaQuery<?> query, CriteriaBuilder builder) {
				Predicate predicate = builder.and();
				// equal codeCategory
				if (StringUtil.isNotEmpty(log.getLogType())) {
					predicate = builder.and(predicate, builder.like(
							builder.lower(root.<String>get("logType")),
							LikePatternUtil.getLikePattern(log.getLogType())));
				}
				return predicate;
			}
		};
	}



}
